import request from '@/utils/http';

/**
 * 客户相关接口
 */
const customerApi = {
  /**
   * 获取客户列表
   * @param {Object} params - 查询参数
   * @returns {Promise} 请求结果
   */
  getCustomerList(params = {}) {
    return request({
      url: '/customers',
      method: 'get',
      params
    });
  },

  /**
   * 获取客户详情
   * @param {Number} id - 客户ID
   * @returns {Promise} 请求结果
   */
  getCustomerDetail(id) {
    return request({
      url: `/customers/${id}`,
      method: 'get'
    });
  },

  /**
   * 创建客户
   * @param {Object} data - 客户数据
   * @returns {Promise} 请求结果
   */
  createCustomer(data) {
    return request({
      url: '/customers',
      method: 'post',
      data
    });
  },

  /**
   * 更新客户
   * @param {Number} id - 客户ID
   * @param {Object} data - 客户数据
   * @returns {Promise} 请求结果
   */
  updateCustomer(id, data) {
    return request({
      url: `/customers/${id}`,
      method: 'put',
      data
    });
  },

  /**
   * 删除客户
   * @param {Number} id - 客户ID
   * @returns {Promise} 请求结果
   */
  deleteCustomer(id) {
    return request({
      url: `/customers/${id}`,
      method: 'delete'
    });
  },

  /**
   * 导入客户数据
   * @param {FormData} formData - 包含客户数据的表单
   * @returns {Promise} 请求结果
   */
  importCustomers(formData) {
    return request({
      url: '/customers/import',
      method: 'post',
      data: formData,
      headers: {
        'Content-Type': 'multipart/form-data'
      }
    });
  },

  /**
   * 导出客户数据
   * @param {Object} params - 导出参数
   * @returns {Promise} 请求结果
   */
  exportCustomers(params = {}) {
    return request({
      url: '/customers/export',
      method: 'get',
      params,
      responseType: 'blob'
    });
  },

  /**
   * 批量删除客户
   * @param {Array} ids - 客户ID数组
   * @returns {Promise} 请求结果
   */
  batchDeleteCustomers(ids) {
    return request({
      url: '/customers/batch',
      method: 'delete',
      data: { ids }
    });
  }
};

export default customerApi; 